/*
 * To change this template, choose Tools | Templates
 * and open the template in the editor.
 */

/*
 * NewJFrame.java
 *
 * Created on Sep 1, 2011, 9:27:09 PM
 */

package visual.Seguridad;

//import disenho.frmMantenimientoProductos;
import bentity.bePerfil;
import bentity.bePrivilegio;
import bentity.beUsuario;
import blogic.blPerfil;
import blogic.blUsuario;
import java.sql.SQLException;
import java.util.ArrayList;
import java.util.logging.Level;
import java.util.logging.Logger;
import javax.swing.JOptionPane;
import visual.Almacenamiento.pnfMantenimientoIncidencias;
import visual.Almacenamiento.pnfReporteMerma;
import visual.Almacenamiento.pnfReporteEstadoUbicaciones;
import visual.Almacenamiento.pnfReporteIngresos;
import visual.Almacenamiento.pnfReporteKardex;
import visual.Almacenamiento.pnfReporteInventario;
import visual.Almacenamiento.pnfReporteTrazabilidad;
import visual.Almacenamiento.pnfReubicarProducto;
import visual.Configuracion.dlgAsignarPalletAUbicacion;
import visual.Configuracion.pnfBloqueoUbicaciones;
import visual.Configuracion.pnfDistribucionAlmacen;
import visual.Configuracion.pnfEstadoActualAlmacen;
import visual.Despacho.pnfMantenimientoClientes;
import visual.Despacho.pnfMantenimientoOrdenDespacho;
import visual.Despacho.pnfMantenimientoPedidos;
import visual.Despacho.pnfSacarXDespacho;
import visual.Despacho.pnfSacarXIncidente;
import visual.Despacho.pnfSalidaPorVencimiento;
import visual.Ingreso.pnfMantenimientoProductos;
import visual.Ingreso.pnfMantenimientoProveedores;
import visual.Ingreso.pnfUbicacionPallet;

/**
 *
 * @author giuliomv
 */
public class frmMenu extends javax.swing.JFrame {
    private static int ANCHO_PANEL_SECUNDARIO = 390;
    private static int ESPACIO_BOTON_CERRAR = 60;
    private javax.swing.JPanel pnlFuncionalidad = null;
    private beUsuario usuario = null;
    private ArrayList<bePrivilegio> listaPrivilegios = new ArrayList<bePrivilegio>();

    public frmMenu(beUsuario usuario) {
        initComponents();
        this.usuario = usuario;
        this.setLayout(null);
        this.establecerVentanaMaximizada();
        this.establecerPanelSecundario();
        this.establecerPanelInicio();
        this.establecerBotonCerrar();
        this.bloquearBarraMenu();
    }

    public void establecerBotonCerrar(){
        this.btnCerrarFuncionalidad.setLocation(this.getSize().width-this.ESPACIO_BOTON_CERRAR,20);
    }

    public void establecerVentanaMaximizada(){
        int width = this.getToolkit().getScreenSize().width;
        int height = this.getToolkit().getScreenSize().height;
        this.setBounds(0, 0, width, height);
    }

    public void establecerPanelSecundario(){
        int ancho = this.getToolkit().getScreenSize().width;
        int alto = this.getToolkit().getScreenSize().height;
        this.pnlSecundario.setBounds(ancho-this.ANCHO_PANEL_SECUNDARIO,0,this.ANCHO_PANEL_SECUNDARIO,alto);
        this.pnlSecundario.setLayout(null);
        this.lblDatosUsuario.setLocation(10,20);
        this.lblInfoUsuario.setLocation(20,70);
        this.lblInfoUsuario.setText("Usuario: "+usuario.getNombre());
        this.lblInfoPerfil.setLocation(20,120);
        blPerfil gestorPerfiles = new blPerfil();
        bePerfil perfil = gestorPerfiles.queryById(usuario.getIdPerfil());
        this.lblInfoPerfil.setText("Perfil: "+perfil.getDescripcion());
    }

    public void establecerPanelInicio(){
        int width = this.getToolkit().getScreenSize().width;
        int height = this.getToolkit().getScreenSize().height;
        this.pnlInicio.setLayout(null);
        this.pnlInicio.setBounds(0,0,width-this.ANCHO_PANEL_SECUNDARIO,height);
        this.lblTitulo1.setLocation(this.pnlInicio.getSize().width/2 - this.lblTitulo1.getSize().width/2, 100);
        this.lblTitulo2.setLocation(this.pnlInicio.getSize().width/2 - this.lblTitulo2.getSize().width/2, 200);
        this.imgInicio.setLocation(this.pnlInicio.getSize().width/2 - this.imgInicio.getSize().width/2, 300);
    }

    private void bloquearBarraMenu(){
        
        blPerfil gestorPerfil = new blPerfil();

        this.listaPrivilegios = gestorPerfil.obtenerListaPrivilegios(this.usuario.getIdPerfil());
        
        
//        if (!(this.tienePrivilegio(this.muiAsignarPalletUbicaciones.getText()))) {
//            this.muiAsignarPalletUbicaciones.setEnabled(false);
//        }

                
        if (!(this.tienePrivilegio(this.muiBloqueoRacks.getText()))) {
            this.muiBloqueoRacks.setEnabled(false);
        }
                
        if (!(this.tienePrivilegio(this.muiDistribucionAlmacen.getText()))) {
            this.muiDistribucionAlmacen.setEnabled(false);
        }
                
        if (!(this.tienePrivilegio(this.muiMantenimientoClientes.getText()))) {
            this.muiMantenimientoClientes.setEnabled(false);
        }
                
        if (!(this.tienePrivilegio(this.muiMantenimientoContrasenha.getText()))) {
            this.muiMantenimientoContrasenha.setEnabled(false);
        }
        
        if (!(this.tienePrivilegio(this.muiMantenimientoIncidencias.getText()))) {
            this.muiMantenimientoIncidencias.setEnabled(false);
        }
        
        if (!(this.tienePrivilegio(this.muiMantenimientoOrdenDespacho.getText()))) {
            this.muiMantenimientoOrdenDespacho.setEnabled(false);
        }

        if (!(this.tienePrivilegio(this.muiMantenimientoPedidos.getText()))) {
            this.muiMantenimientoPedidos.setEnabled(false);
        }

        if (!(this.tienePrivilegio(this.muiMantenimientoPerfil.getText()))) {
            this.muiMantenimientoPerfil.setEnabled(false);
        }

        if (!(this.tienePrivilegio(this.muiMantenimientoProducto.getText()))) {
            this.muiMantenimientoProducto.setEnabled(false);
        }

        if (!(this.tienePrivilegio(this.muiMantenimientoProveedores.getText()))) {
            this.muiMantenimientoProveedores.setEnabled(false);
        }

        if (!(this.tienePrivilegio(this.muiMantenimientoUsuarios.getText()))) {
            this.muiMantenimientoUsuarios.setEnabled(false);
        }

        if (!(this.tienePrivilegio(this.muiReporteDanhos.getText()))) {
            this.muiReporteDanhos.setEnabled(false);
        }
        
        if (!(this.tienePrivilegio(this.muiReporteEstadoUbicaciones.getText()))) {
            this.muiReporteEstadoUbicaciones.setEnabled(false);
        }

        if (!(this.tienePrivilegio(this.muiReporteInventario.getText()))) {
            this.muiReporteEstadoUbicaciones.setEnabled(false);
        }

        if (!(this.tienePrivilegio(this.muiConsultarLogAuditoria.getText()))) {
            this.muiReporteEstadoUbicaciones.setEnabled(false);
        }

        
//        if (!(this.tienePrivilegio(this.muiReporteIOProductos.getText()))) {
//            this.muiReporteIOProductos.setEnabled(false);
//        }
        
//        if (!(this.tienePrivilegio(this.muiReporteProducVenc.getText()))) {
//            this.muiReporteProducVenc.setEnabled(false);
//        }
        
        if (!(this.tienePrivilegio(this.muiReporteKardex.getText()))) {
            this.muiReporteKardex.setEnabled(false);
        }
        
        if (!(this.tienePrivilegio(this.muiReporteTrazabilidad.getText()))) {
            this.muiReporteTrazabilidad.setEnabled(false);
        }

        if (!(this.tienePrivilegio(this.muiReubicacionProductos.getText()))) {
            this.muiReubicacionProductos.setEnabled(false);
        }
        
        if (!(this.tienePrivilegio(this.muiUbicacionProductos.getText()))) {
            this.muiUbicacionProductos.setEnabled(false);
        }

        if (!(this.tienePrivilegio(this.muiDespacho.getText()))) {
            this.muiDespacho.setEnabled(false);
        }

        if (!(this.tienePrivilegio(this.muiReporteIngresos.getText()))) {
            this.muiReporteIngresos.setEnabled(false);
        }


        if (!(this.tienePrivilegio(this.muiSalidaPorVencimiento.getText()))) {
            this.muiSalidaPorVencimiento.setEnabled(false);
        }

        if (!(this.tienePrivilegio(this.muiSalidaPorIncidente.getText()))) {
            this.muiSalidaPorIncidente.setEnabled(false);
        }

        if (!(this.tienePrivilegio(this.muiEstadoActualAlmacen.getText()))) {
            this.muiEstadoActualAlmacen.setEnabled(false);
        }
    }

    private boolean tienePrivilegio(String strPrivilegio){

        for(int i=0; i<this.listaPrivilegios.size(); i++)
            if (strPrivilegio.equals(listaPrivilegios.get(i).getDescripcion())){
                //Para reducir el tamanho de la prox iteracion retiramos el privilegio que ya fue leido
                listaPrivilegios.remove(i);
                return true;
            }

        return false;
    }

    /** This method is called from within the constructor to
     * initialize the form.
     * WARNING: Do NOT modify this code. The content of this method is
     * always regenerated by the Form Editor.
     */
    @SuppressWarnings("unchecked")
    // <editor-fold defaultstate="collapsed" desc="Generated Code">//GEN-BEGIN:initComponents
    private void initComponents() {

        pnlSecundario = new javax.swing.JPanel();
        lblInfoUsuario = new javax.swing.JLabel();
        lblInfoPerfil = new javax.swing.JLabel();
        lblDatosUsuario = new javax.swing.JLabel();
        pnlInicio = new javax.swing.JPanel();
        lblTitulo1 = new javax.swing.JLabel();
        imgInicio = new javax.swing.JLabel();
        lblTitulo2 = new javax.swing.JLabel();
        btnCerrarFuncionalidad = new javax.swing.JButton();
        mnbMenuPrincipal = new javax.swing.JMenuBar();
        mnuIngreso = new javax.swing.JMenu();
        muiMantenimientoProveedores = new javax.swing.JMenuItem();
        muiMantenimientoProducto = new javax.swing.JMenuItem();
        muiUbicacionProductos = new javax.swing.JMenuItem();
        mnuDespacho = new javax.swing.JMenu();
        muiMantenimientoClientes = new javax.swing.JMenuItem();
        muiMantenimientoPedidos = new javax.swing.JMenuItem();
        muiMantenimientoOrdenDespacho = new javax.swing.JMenuItem();
        mnuMovimientos = new javax.swing.JMenu();
        muiDespacho = new javax.swing.JMenuItem();
        muiSalidaPorVencimiento = new javax.swing.JMenuItem();
        muiSalidaPorIncidente = new javax.swing.JMenuItem();
        mnuAlmacenamiento = new javax.swing.JMenu();
        muiMantenimientoIncidencias = new javax.swing.JMenuItem();
        muiReubicacionProductos = new javax.swing.JMenuItem();
        mnuConfiguracion = new javax.swing.JMenu();
        muiBloqueoRacks = new javax.swing.JMenuItem();
        muiDistribucionAlmacen = new javax.swing.JMenuItem();
        mnuReportes = new javax.swing.JMenu();
        muiReporteEstadoUbicaciones = new javax.swing.JMenuItem();
        muiEstadoActualAlmacen = new javax.swing.JMenuItem();
        muiReporteIngresos = new javax.swing.JMenuItem();
        muiReporteInventario = new javax.swing.JMenuItem();
        muiReporteKardex = new javax.swing.JMenuItem();
        muiReporteDanhos = new javax.swing.JMenuItem();
        muiReporteTrazabilidad = new javax.swing.JMenuItem();
        menuSeguridad = new javax.swing.JMenu();
        muiMantenimientoPerfil = new javax.swing.JMenuItem();
        muiMantenimientoUsuarios = new javax.swing.JMenuItem();
        muiMantenimientoContrasenha = new javax.swing.JMenuItem();
        muiConsultarLogAuditoria = new javax.swing.JMenuItem();
        mnuCerrarSesion = new javax.swing.JMenu();

        setDefaultCloseOperation(javax.swing.WindowConstants.EXIT_ON_CLOSE);
        setTitle("Sistema Thor Store");
        setName("frmPrincipal"); // NOI18N
        setResizable(false);
        setUndecorated(true);

        pnlSecundario.setBackground(new java.awt.Color(177, 171, 161));
        pnlSecundario.setLayout(null);

        lblInfoUsuario.setFont(new java.awt.Font("Dialog", 0, 20));
        lblInfoUsuario.setForeground(new java.awt.Color(0, 0, 0));
        lblInfoUsuario.setText("Usuario: 1001");
        pnlSecundario.add(lblInfoUsuario);
        lblInfoUsuario.setBounds(10, 40, 390, 24);

        lblInfoPerfil.setFont(new java.awt.Font("Dialog", 0, 20));
        lblInfoPerfil.setForeground(new java.awt.Color(0, 0, 0));
        lblInfoPerfil.setText("Perfil: Gerente");
        pnlSecundario.add(lblInfoPerfil);
        lblInfoPerfil.setBounds(10, 77, 390, 30);

        lblDatosUsuario.setFont(new java.awt.Font("Dialog", 0, 20));
        lblDatosUsuario.setForeground(new java.awt.Color(0, 0, 0));
        lblDatosUsuario.setText("Datos del usuario");
        pnlSecundario.add(lblDatosUsuario);
        lblDatosUsuario.setBounds(128, 7, 220, 24);

        lblTitulo1.setFont(new java.awt.Font("DejaVu Sans", 0, 36));
        lblTitulo1.setHorizontalAlignment(javax.swing.SwingConstants.CENTER);
        lblTitulo1.setText("Sistema de Gestión de Almacenes");
        lblTitulo1.setVerticalAlignment(javax.swing.SwingConstants.TOP);
        lblTitulo1.setHorizontalTextPosition(javax.swing.SwingConstants.CENTER);
        lblTitulo1.setName("lblTitulo1"); // NOI18N

        imgInicio.setIcon(new javax.swing.ImageIcon(getClass().getResource("/thorstore logo1costado.png"))); // NOI18N

        lblTitulo2.setFont(new java.awt.Font("DejaVu Sans", 0, 36));
        lblTitulo2.setHorizontalAlignment(javax.swing.SwingConstants.CENTER);
        lblTitulo2.setText("Thor Store");
        lblTitulo2.setVerticalAlignment(javax.swing.SwingConstants.TOP);
        lblTitulo2.setHorizontalTextPosition(javax.swing.SwingConstants.CENTER);

        javax.swing.GroupLayout pnlInicioLayout = new javax.swing.GroupLayout(pnlInicio);
        pnlInicio.setLayout(pnlInicioLayout);
        pnlInicioLayout.setHorizontalGroup(
            pnlInicioLayout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
            .addGroup(pnlInicioLayout.createSequentialGroup()
                .addGroup(pnlInicioLayout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
                    .addGroup(pnlInicioLayout.createSequentialGroup()
                        .addGap(80, 80, 80)
                        .addComponent(lblTitulo1))
                    .addGroup(pnlInicioLayout.createSequentialGroup()
                        .addGap(274, 274, 274)
                        .addComponent(lblTitulo2))
                    .addGroup(pnlInicioLayout.createSequentialGroup()
                        .addGap(244, 244, 244)
                        .addComponent(imgInicio)))
                .addContainerGap(113, Short.MAX_VALUE))
        );
        pnlInicioLayout.setVerticalGroup(
            pnlInicioLayout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
            .addGroup(pnlInicioLayout.createSequentialGroup()
                .addGap(30, 30, 30)
                .addComponent(lblTitulo1)
                .addGap(18, 18, 18)
                .addComponent(lblTitulo2)
                .addGap(60, 60, 60)
                .addComponent(imgInicio)
                .addContainerGap(171, Short.MAX_VALUE))
        );

        btnCerrarFuncionalidad.setBackground(new java.awt.Color(240, 235, 226));
        btnCerrarFuncionalidad.setFont(new java.awt.Font("Dialog", 0, 20));
        btnCerrarFuncionalidad.setForeground(new java.awt.Color(0, 0, 0));
        btnCerrarFuncionalidad.setText("X");
        btnCerrarFuncionalidad.setEnabled(false);
        btnCerrarFuncionalidad.addActionListener(new java.awt.event.ActionListener() {
            public void actionPerformed(java.awt.event.ActionEvent evt) {
                btnCerrarFuncionalidadActionPerformed(evt);
            }
        });

        mnbMenuPrincipal.setEnabled(false);
        mnbMenuPrincipal.setFont(new java.awt.Font("Ubuntu", 0, 24));
        mnbMenuPrincipal.setMaximumSize(new java.awt.Dimension(300, 1000));

        mnuIngreso.setText("Ingreso");
        mnuIngreso.setFont(new java.awt.Font("Ubuntu", 0, 24));

        muiMantenimientoProveedores.setFont(new java.awt.Font("Ubuntu", 0, 20));
        muiMantenimientoProveedores.setText("Mantenimiento de proveedores");
        muiMantenimientoProveedores.addActionListener(new java.awt.event.ActionListener() {
            public void actionPerformed(java.awt.event.ActionEvent evt) {
                muiMantenimientoProveedoresActionPerformed(evt);
            }
        });
        mnuIngreso.add(muiMantenimientoProveedores);

        muiMantenimientoProducto.setFont(new java.awt.Font("Ubuntu", 0, 20));
        muiMantenimientoProducto.setText("Mantenimiento de productos");
        muiMantenimientoProducto.addActionListener(new java.awt.event.ActionListener() {
            public void actionPerformed(java.awt.event.ActionEvent evt) {
                muiMantenimientoProductoActionPerformed(evt);
            }
        });
        mnuIngreso.add(muiMantenimientoProducto);

        muiUbicacionProductos.setFont(new java.awt.Font("Ubuntu", 0, 20));
        muiUbicacionProductos.setText("Ubicación de productos");
        muiUbicacionProductos.addActionListener(new java.awt.event.ActionListener() {
            public void actionPerformed(java.awt.event.ActionEvent evt) {
                muiUbicacionProductosActionPerformed(evt);
            }
        });
        mnuIngreso.add(muiUbicacionProductos);

        mnbMenuPrincipal.add(mnuIngreso);

        mnuDespacho.setText("Despacho");
        mnuDespacho.setFont(new java.awt.Font("Ubuntu", 0, 24));

        muiMantenimientoClientes.setFont(new java.awt.Font("Ubuntu", 0, 20));
        muiMantenimientoClientes.setText("Mantenimiento de clientes");
        muiMantenimientoClientes.addActionListener(new java.awt.event.ActionListener() {
            public void actionPerformed(java.awt.event.ActionEvent evt) {
                muiMantenimientoClientesActionPerformed(evt);
            }
        });
        mnuDespacho.add(muiMantenimientoClientes);

        muiMantenimientoPedidos.setFont(new java.awt.Font("Ubuntu", 0, 20));
        muiMantenimientoPedidos.setText("Mantenimiento de pedidos");
        muiMantenimientoPedidos.addActionListener(new java.awt.event.ActionListener() {
            public void actionPerformed(java.awt.event.ActionEvent evt) {
                muiMantenimientoPedidosActionPerformed(evt);
            }
        });
        mnuDespacho.add(muiMantenimientoPedidos);

        muiMantenimientoOrdenDespacho.setFont(new java.awt.Font("Ubuntu", 0, 20));
        muiMantenimientoOrdenDespacho.setText("Mantenimiento de órdenes de despacho");
        muiMantenimientoOrdenDespacho.addActionListener(new java.awt.event.ActionListener() {
            public void actionPerformed(java.awt.event.ActionEvent evt) {
                muiMantenimientoOrdenDespachoActionPerformed(evt);
            }
        });
        mnuDespacho.add(muiMantenimientoOrdenDespacho);

        mnuMovimientos.setText("Mantenimiento de movimientos");
        mnuMovimientos.setFont(new java.awt.Font("Ubuntu", 0, 20));

        muiDespacho.setFont(new java.awt.Font("Ubuntu", 0, 20));
        muiDespacho.setText("Despacho de pallets");
        muiDespacho.addActionListener(new java.awt.event.ActionListener() {
            public void actionPerformed(java.awt.event.ActionEvent evt) {
                muiDespachoActionPerformed(evt);
            }
        });
        mnuMovimientos.add(muiDespacho);

        muiSalidaPorVencimiento.setFont(new java.awt.Font("Ubuntu", 0, 20));
        muiSalidaPorVencimiento.setText("Salida por vencimiento");
        muiSalidaPorVencimiento.addActionListener(new java.awt.event.ActionListener() {
            public void actionPerformed(java.awt.event.ActionEvent evt) {
                muiSalidaPorVencimientoActionPerformed(evt);
            }
        });
        mnuMovimientos.add(muiSalidaPorVencimiento);

        muiSalidaPorIncidente.setFont(new java.awt.Font("Ubuntu", 0, 20));
        muiSalidaPorIncidente.setText("Salida por incidente");
        muiSalidaPorIncidente.addActionListener(new java.awt.event.ActionListener() {
            public void actionPerformed(java.awt.event.ActionEvent evt) {
                muiSalidaPorIncidenteActionPerformed(evt);
            }
        });
        mnuMovimientos.add(muiSalidaPorIncidente);

        mnuDespacho.add(mnuMovimientos);

        mnbMenuPrincipal.add(mnuDespacho);

        mnuAlmacenamiento.setText("Almacenamiento");
        mnuAlmacenamiento.setFont(new java.awt.Font("Ubuntu", 0, 24));

        muiMantenimientoIncidencias.setFont(new java.awt.Font("Ubuntu", 0, 20));
        muiMantenimientoIncidencias.setText("Mantenimiento de incidencias");
        muiMantenimientoIncidencias.addActionListener(new java.awt.event.ActionListener() {
            public void actionPerformed(java.awt.event.ActionEvent evt) {
                muiMantenimientoIncidenciasActionPerformed(evt);
            }
        });
        mnuAlmacenamiento.add(muiMantenimientoIncidencias);

        muiReubicacionProductos.setFont(new java.awt.Font("Ubuntu", 0, 20));
        muiReubicacionProductos.setText("Reubicacion de productos");
        muiReubicacionProductos.addActionListener(new java.awt.event.ActionListener() {
            public void actionPerformed(java.awt.event.ActionEvent evt) {
                muiReubicacionProductosActionPerformed(evt);
            }
        });
        mnuAlmacenamiento.add(muiReubicacionProductos);

        mnbMenuPrincipal.add(mnuAlmacenamiento);

        mnuConfiguracion.setText("Configuración");
        mnuConfiguracion.setFont(new java.awt.Font("Ubuntu", 0, 24));

        muiBloqueoRacks.setFont(new java.awt.Font("Ubuntu", 0, 20));
        muiBloqueoRacks.setText("Bloqueo de ubicaciones");
        muiBloqueoRacks.addActionListener(new java.awt.event.ActionListener() {
            public void actionPerformed(java.awt.event.ActionEvent evt) {
                muiBloqueoRacksActionPerformed(evt);
            }
        });
        mnuConfiguracion.add(muiBloqueoRacks);

        muiDistribucionAlmacen.setFont(new java.awt.Font("Ubuntu", 0, 20));
        muiDistribucionAlmacen.setText("Distribución del almacén");
        muiDistribucionAlmacen.addActionListener(new java.awt.event.ActionListener() {
            public void actionPerformed(java.awt.event.ActionEvent evt) {
                muiDistribucionAlmacenActionPerformed(evt);
            }
        });
        mnuConfiguracion.add(muiDistribucionAlmacen);

        mnbMenuPrincipal.add(mnuConfiguracion);

        mnuReportes.setText("Reportes");
        mnuReportes.setFont(new java.awt.Font("Ubuntu", 0, 24));

        muiReporteEstadoUbicaciones.setFont(new java.awt.Font("Ubuntu", 0, 20));
        muiReporteEstadoUbicaciones.setText("Estado de ubicaciones");
        muiReporteEstadoUbicaciones.addActionListener(new java.awt.event.ActionListener() {
            public void actionPerformed(java.awt.event.ActionEvent evt) {
                muiReporteEstadoUbicacionesActionPerformed(evt);
            }
        });
        mnuReportes.add(muiReporteEstadoUbicaciones);

        muiEstadoActualAlmacen.setFont(new java.awt.Font("Ubuntu", 0, 20));
        muiEstadoActualAlmacen.setText("Estado actual del almacén");
        muiEstadoActualAlmacen.addActionListener(new java.awt.event.ActionListener() {
            public void actionPerformed(java.awt.event.ActionEvent evt) {
                muiEstadoActualAlmacenActionPerformed(evt);
            }
        });
        mnuReportes.add(muiEstadoActualAlmacen);

        muiReporteIngresos.setFont(new java.awt.Font("Ubuntu", 0, 20));
        muiReporteIngresos.setText("Ingresos");
        muiReporteIngresos.addActionListener(new java.awt.event.ActionListener() {
            public void actionPerformed(java.awt.event.ActionEvent evt) {
                muiReporteIngresosActionPerformed(evt);
            }
        });
        mnuReportes.add(muiReporteIngresos);

        muiReporteInventario.setFont(new java.awt.Font("DejaVu Sans", 0, 20));
        muiReporteInventario.setText("Inventario");
        muiReporteInventario.addActionListener(new java.awt.event.ActionListener() {
            public void actionPerformed(java.awt.event.ActionEvent evt) {
                muiReporteInventarioActionPerformed(evt);
            }
        });
        mnuReportes.add(muiReporteInventario);

        muiReporteKardex.setFont(new java.awt.Font("Ubuntu", 0, 20));
        muiReporteKardex.setText("Kardex de productos");
        muiReporteKardex.addActionListener(new java.awt.event.ActionListener() {
            public void actionPerformed(java.awt.event.ActionEvent evt) {
                muiReporteKardexActionPerformed(evt);
            }
        });
        mnuReportes.add(muiReporteKardex);

        muiReporteDanhos.setFont(new java.awt.Font("Ubuntu", 0, 20));
        muiReporteDanhos.setText("Merma");
        muiReporteDanhos.addActionListener(new java.awt.event.ActionListener() {
            public void actionPerformed(java.awt.event.ActionEvent evt) {
                muiReporteDanhosActionPerformed(evt);
            }
        });
        mnuReportes.add(muiReporteDanhos);

        muiReporteTrazabilidad.setFont(new java.awt.Font("Ubuntu", 0, 20));
        muiReporteTrazabilidad.setText("Trazabilidad de pallet");
        muiReporteTrazabilidad.addActionListener(new java.awt.event.ActionListener() {
            public void actionPerformed(java.awt.event.ActionEvent evt) {
                muiReporteTrazabilidadActionPerformed(evt);
            }
        });
        mnuReportes.add(muiReporteTrazabilidad);

        mnbMenuPrincipal.add(mnuReportes);

        menuSeguridad.setText("Seguridad ");
        menuSeguridad.setFont(new java.awt.Font("Ubuntu", 0, 24));

        muiMantenimientoPerfil.setFont(new java.awt.Font("Ubuntu", 0, 20));
        muiMantenimientoPerfil.setText("Mantenimiento de perfiles");
        muiMantenimientoPerfil.addActionListener(new java.awt.event.ActionListener() {
            public void actionPerformed(java.awt.event.ActionEvent evt) {
                muiMantenimientoPerfilActionPerformed(evt);
            }
        });
        menuSeguridad.add(muiMantenimientoPerfil);

        muiMantenimientoUsuarios.setFont(new java.awt.Font("DejaVu Sans", 0, 20));
        muiMantenimientoUsuarios.setText("Mantenimiento de usuarios");
        muiMantenimientoUsuarios.addActionListener(new java.awt.event.ActionListener() {
            public void actionPerformed(java.awt.event.ActionEvent evt) {
                muiMantenimientoUsuariosActionPerformed(evt);
            }
        });
        menuSeguridad.add(muiMantenimientoUsuarios);

        muiMantenimientoContrasenha.setFont(new java.awt.Font("Ubuntu", 0, 20));
        muiMantenimientoContrasenha.setText("Mantenimiento de contraseña");
        muiMantenimientoContrasenha.addActionListener(new java.awt.event.ActionListener() {
            public void actionPerformed(java.awt.event.ActionEvent evt) {
                muiMantenimientoContrasenhaActionPerformed(evt);
            }
        });
        menuSeguridad.add(muiMantenimientoContrasenha);

        muiConsultarLogAuditoria.setFont(new java.awt.Font("Ubuntu", 0, 20));
        muiConsultarLogAuditoria.setText("Consulta de log de auditoría");
        muiConsultarLogAuditoria.addActionListener(new java.awt.event.ActionListener() {
            public void actionPerformed(java.awt.event.ActionEvent evt) {
                muiConsultarLogAuditoriaActionPerformed(evt);
            }
        });
        menuSeguridad.add(muiConsultarLogAuditoria);

        mnbMenuPrincipal.add(menuSeguridad);

        mnuCerrarSesion.setText("Cerrar Sesión ");
        mnuCerrarSesion.setFont(new java.awt.Font("Ubuntu", 0, 24));
        mnuCerrarSesion.addMouseListener(new java.awt.event.MouseAdapter() {
            public void mouseClicked(java.awt.event.MouseEvent evt) {
                mnuCerrarSesionMouseClicked(evt);
            }
        });
        mnuCerrarSesion.addActionListener(new java.awt.event.ActionListener() {
            public void actionPerformed(java.awt.event.ActionEvent evt) {
                mnuCerrarSesionActionPerformed(evt);
            }
        });
        mnbMenuPrincipal.add(mnuCerrarSesion);

        setJMenuBar(mnbMenuPrincipal);

        javax.swing.GroupLayout layout = new javax.swing.GroupLayout(getContentPane());
        getContentPane().setLayout(layout);
        layout.setHorizontalGroup(
            layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
            .addGroup(layout.createSequentialGroup()
                .addComponent(pnlInicio, javax.swing.GroupLayout.PREFERRED_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.PREFERRED_SIZE)
                .addGap(21, 21, 21)
                .addGroup(layout.createParallelGroup(javax.swing.GroupLayout.Alignment.TRAILING)
                    .addGroup(layout.createSequentialGroup()
                        .addComponent(pnlSecundario, javax.swing.GroupLayout.PREFERRED_SIZE, 409, javax.swing.GroupLayout.PREFERRED_SIZE)
                        .addContainerGap())
                    .addGroup(layout.createSequentialGroup()
                        .addComponent(btnCerrarFuncionalidad, javax.swing.GroupLayout.PREFERRED_SIZE, 49, javax.swing.GroupLayout.PREFERRED_SIZE)
                        .addGap(23, 23, 23))))
        );
        layout.setVerticalGroup(
            layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
            .addComponent(pnlInicio, javax.swing.GroupLayout.Alignment.TRAILING, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, Short.MAX_VALUE)
            .addGroup(javax.swing.GroupLayout.Alignment.TRAILING, layout.createSequentialGroup()
                .addContainerGap()
                .addComponent(btnCerrarFuncionalidad)
                .addGap(49, 49, 49)
                .addComponent(pnlSecundario, javax.swing.GroupLayout.PREFERRED_SIZE, 432, javax.swing.GroupLayout.PREFERRED_SIZE)
                .addGap(12, 12, 12))
        );

        pack();
    }// </editor-fold>//GEN-END:initComponents

    private void mnuCerrarSesionActionPerformed(java.awt.event.ActionEvent evt) {//GEN-FIRST:event_mnuCerrarSesionActionPerformed
        if (this.pnlInicio.isVisible()){
            this.dispose();
        }
        else {
            JOptionPane.showMessageDialog(this, "Debe cerrar la funcionalidad actual para poder abrir otra.", "Información", JOptionPane.INFORMATION_MESSAGE);
        }
    }//GEN-LAST:event_mnuCerrarSesionActionPerformed

    private void btnCerrarFuncionalidadActionPerformed(java.awt.event.ActionEvent evt) {//GEN-FIRST:event_btnCerrarFuncionalidadActionPerformed
        // TODO add your handling code here:
            this.pnlFuncionalidad.setVisible(true);
            this.remove(this.pnlFuncionalidad);
            this.pnlInicio.setVisible(true);
            this.pnlFuncionalidad = null;
            this.btnCerrarFuncionalidad.setEnabled(false);
            this.pnlSecundario.setVisible(true);
            this.add(this.pnlSecundario,0);
            this.btnCerrarFuncionalidad.setVisible(false);
            this.mnbMenuPrincipal.setEnabled(true);
    }//GEN-LAST:event_btnCerrarFuncionalidadActionPerformed

    private void muiMantenimientoPedidosActionPerformed(java.awt.event.ActionEvent evt) {//GEN-FIRST:event_muiMantenimientoPedidosActionPerformed
        // TODO add your handling code here:
        int width = this.getToolkit().getScreenSize().width;
        int height = this.getToolkit().getScreenSize().height;
        this.pnlFuncionalidad = new pnfMantenimientoPedidos(this.usuario);
        this.add(pnlFuncionalidad,0);
        this.pnlFuncionalidad.setBounds(0,0,width-ESPACIO_BOTON_CERRAR,height);
        this.pnlInicio.setVisible(false);
        this.pnlFuncionalidad.setVisible(true);
        this.remove(this.pnlSecundario);
        this.btnCerrarFuncionalidad.setVisible(true);
        this.btnCerrarFuncionalidad.setEnabled(true);
        this.bloquearBarraMenu();
    }//GEN-LAST:event_muiMantenimientoPedidosActionPerformed

    private void muiMantenimientoOrdenDespachoActionPerformed(java.awt.event.ActionEvent evt) {//GEN-FIRST:event_muiMantenimientoOrdenDespachoActionPerformed
        // TODO add your handling code here:
        
        if (this.pnlInicio.isVisible()){
            int width = this.getToolkit().getScreenSize().width;
            int height = this.getToolkit().getScreenSize().height;
            this.pnlFuncionalidad = new pnfMantenimientoOrdenDespacho(this.usuario);
            this.add(pnlFuncionalidad,0);
            this.pnlFuncionalidad.setBounds(0,0,width-ESPACIO_BOTON_CERRAR,height);
            this.pnlInicio.setVisible(false);
            this.pnlFuncionalidad.setVisible(true);
            this.remove(this.pnlSecundario);
            this.btnCerrarFuncionalidad.setVisible(true);
            this.btnCerrarFuncionalidad.setEnabled(true);
            this.mnbMenuPrincipal.setEnabled(false);
        }
        else {
            JOptionPane.showMessageDialog(this, "Debe cerrar la funcionalidad actual para poder abrir otra.", "Información", JOptionPane.INFORMATION_MESSAGE);
        }
    }//GEN-LAST:event_muiMantenimientoOrdenDespachoActionPerformed

    private void muiReubicacionProductosActionPerformed(java.awt.event.ActionEvent evt) {//GEN-FIRST:event_muiReubicacionProductosActionPerformed
        // TODO add your handling code here:
        if (this.pnlInicio.isVisible()){
            int width = this.getToolkit().getScreenSize().width;
            int height = this.getToolkit().getScreenSize().height;
            this.pnlFuncionalidad = new pnfReubicarProducto(this.usuario);
            this.add(pnlFuncionalidad,0);
            this.pnlFuncionalidad.setBounds(0,0,width-ESPACIO_BOTON_CERRAR,height);
            this.pnlInicio.setVisible(false);
            this.pnlFuncionalidad.setVisible(true);
            this.remove(this.pnlSecundario);
            this.btnCerrarFuncionalidad.setVisible(true);
            this.btnCerrarFuncionalidad.setEnabled(true);
            this.mnbMenuPrincipal.setEnabled(false);
        }
        else {
            JOptionPane.showMessageDialog(this, "Debe cerrar la funcionalidad actual para poder abrir otra.", "Información", JOptionPane.INFORMATION_MESSAGE);
        }
    }//GEN-LAST:event_muiReubicacionProductosActionPerformed

    private void muiMantenimientoIncidenciasActionPerformed(java.awt.event.ActionEvent evt) {//GEN-FIRST:event_muiMantenimientoIncidenciasActionPerformed
        // TODO add your handling code here:
        if (this.pnlInicio.isVisible()){
            int width = this.getToolkit().getScreenSize().width;
            int height = this.getToolkit().getScreenSize().height;
            try {
                this.pnlFuncionalidad = new pnfMantenimientoIncidencias(this.usuario);
            } catch (Exception ex) {
                Logger.getLogger(frmMenu.class.getName()).log(Level.SEVERE, null, ex);
            }
            this.add(pnlFuncionalidad,0);
            this.pnlFuncionalidad.setBounds(0,0,width-ESPACIO_BOTON_CERRAR,height);
            this.pnlInicio.setVisible(false);
            this.pnlFuncionalidad.setVisible(true);
            this.remove(this.pnlSecundario);
            this.btnCerrarFuncionalidad.setVisible(true);
            this.btnCerrarFuncionalidad.setEnabled(true);
            this.mnbMenuPrincipal.setEnabled(false);
        }
        else {
            JOptionPane.showMessageDialog(this, "Debe cerrar la funcionalidad actual para poder abrir otra.", "Información", JOptionPane.INFORMATION_MESSAGE);
        }
    }//GEN-LAST:event_muiMantenimientoIncidenciasActionPerformed

    private void muiBloqueoRacksActionPerformed(java.awt.event.ActionEvent evt) {//GEN-FIRST:event_muiBloqueoRacksActionPerformed
        // TODO add your handling code here:

        if (this.pnlInicio.isVisible()){
            int width = this.getToolkit().getScreenSize().width;
            int height = this.getToolkit().getScreenSize().height;
            this.pnlFuncionalidad = new pnfBloqueoUbicaciones(this.usuario);
            this.add(pnlFuncionalidad,0);
            this.pnlFuncionalidad.setBounds(0,0,width-ESPACIO_BOTON_CERRAR,height);
            this.pnlInicio.setVisible(false);
            this.pnlFuncionalidad.setVisible(true);
            this.remove(this.pnlSecundario);
            this.btnCerrarFuncionalidad.setVisible(true);
            this.btnCerrarFuncionalidad.setEnabled(true);
            this.mnbMenuPrincipal.setEnabled(false);
        }
        else {
            JOptionPane.showMessageDialog(this, "Debe cerrar la funcionalidad actual para poder abrir otra.", "Información", JOptionPane.INFORMATION_MESSAGE);
        }
    }//GEN-LAST:event_muiBloqueoRacksActionPerformed

    private void muiMantenimientoPerfilActionPerformed(java.awt.event.ActionEvent evt) {//GEN-FIRST:event_muiMantenimientoPerfilActionPerformed
        // TODO add your handling code here:
        if (this.pnlInicio.isVisible()){
            int width = this.getToolkit().getScreenSize().width;
            int height = this.getToolkit().getScreenSize().height;
            this.pnlFuncionalidad = new pnfMantenimientoPerfil(this.usuario);
            this.add(pnlFuncionalidad,0);
            this.pnlFuncionalidad.setBounds(0,0,width-ESPACIO_BOTON_CERRAR,height);
            this.pnlInicio.setVisible(false);
            this.pnlFuncionalidad.setVisible(true);
            this.remove(this.pnlSecundario);
            this.btnCerrarFuncionalidad.setVisible(true);
            this.btnCerrarFuncionalidad.setEnabled(true);
            this.mnbMenuPrincipal.setEnabled(false);
        }
        else {
            JOptionPane.showMessageDialog(this, "Debe cerrar la funcionalidad actual para poder abrir otra.", "Información", JOptionPane.INFORMATION_MESSAGE);
        }
    }//GEN-LAST:event_muiMantenimientoPerfilActionPerformed

    private void muiMantenimientoProveedoresActionPerformed(java.awt.event.ActionEvent evt) {//GEN-FIRST:event_muiMantenimientoProveedoresActionPerformed
        // TODO add your handling code here:
        if (this.pnlInicio.isVisible()){
            int width = this.getToolkit().getScreenSize().width;
            int height = this.getToolkit().getScreenSize().height;
            this.pnlFuncionalidad = new pnfMantenimientoProveedores(this.usuario);
            this.add(pnlFuncionalidad,0);
            this.pnlFuncionalidad.setBounds(0,0,width-ESPACIO_BOTON_CERRAR,height);
            this.pnlInicio.setVisible(false);
            this.pnlFuncionalidad.setVisible(true);
            this.remove(this.pnlSecundario);
            this.btnCerrarFuncionalidad.setVisible(true);
            this.btnCerrarFuncionalidad.setEnabled(true);
            this.mnbMenuPrincipal.setEnabled(false);
        }
        else {
            JOptionPane.showMessageDialog(this, "Debe cerrar la funcionalidad actual para poder abrir otra.", "Información", JOptionPane.INFORMATION_MESSAGE);
        }
        
    }//GEN-LAST:event_muiMantenimientoProveedoresActionPerformed

    private void muiReporteProducVencActionPerformed(java.awt.event.ActionEvent evt) {//GEN-FIRST:event_muiReporteProducVencActionPerformed
        // TODO add your handling code here:
//        if (this.pnlInicio.isVisible()){
//            int width = this.getToolkit().getScreenSize().width;
//            int height = this.getToolkit().getScreenSize().height;
//            this.pnlFuncionalidad = new pnfReporteProductosVencidos();
//            this.add(pnlFuncionalidad,0);
//            this.pnlFuncionalidad.setBounds(0,0,width-ESPACIO_BOTON_CERRAR,height);
//            this.pnlInicio.setVisible(false);
//            this.pnlFuncionalidad.setVisible(true);
//            this.remove(this.pnlSecundario);
//            this.btnCerrarFuncionalidad.setVisible(true);
//            this.btnCerrarFuncionalidad.setEnabled(true);
//            this.mnbMenuPrincipal.setEnabled(false);
//        }
//        else {
//            JOptionPane.showMessageDialog(this, "Debe cerrar la funcionalidad actual para poder abrir otra.", "Información", JOptionPane.INFORMATION_MESSAGE);
//        }
    }//GEN-LAST:event_muiReporteProducVencActionPerformed

    private void muiReporteDanhosActionPerformed(java.awt.event.ActionEvent evt) {//GEN-FIRST:event_muiReporteDanhosActionPerformed
        // TODO add your handling code here:
        if (this.pnlInicio.isVisible()){
            int width = this.getToolkit().getScreenSize().width;
            int height = this.getToolkit().getScreenSize().height;
            this.pnlFuncionalidad = new pnfReporteMerma(this.usuario);
            this.add(pnlFuncionalidad,0);
            this.pnlFuncionalidad.setBounds(0,0,width-ESPACIO_BOTON_CERRAR,height);
            this.pnlInicio.setVisible(false);
            this.pnlFuncionalidad.setVisible(true);
            this.remove(this.pnlSecundario);
            this.btnCerrarFuncionalidad.setVisible(true);
            this.btnCerrarFuncionalidad.setEnabled(true);
            this.mnbMenuPrincipal.setEnabled(false);
        }
        else {
            JOptionPane.showMessageDialog(this, "Debe cerrar la funcionalidad actual para poder abrir otra.", "Información", JOptionPane.INFORMATION_MESSAGE);
        }
    }//GEN-LAST:event_muiReporteDanhosActionPerformed

    private void muiMantenimientoUsuariosActionPerformed(java.awt.event.ActionEvent evt) {//GEN-FIRST:event_muiMantenimientoUsuariosActionPerformed
        // TODO add your handling code here:
        if (this.pnlInicio.isVisible()){
            int width = this.getToolkit().getScreenSize().width;
            int height = this.getToolkit().getScreenSize().height;
            this.pnlFuncionalidad = new pnfMantenimientoUsuario(this.usuario);
            this.add(pnlFuncionalidad,0);
            this.pnlFuncionalidad.setBounds(0,0,width-ESPACIO_BOTON_CERRAR,height);
            this.pnlInicio.setVisible(false);
            this.pnlFuncionalidad.setVisible(true);
            this.pnlFuncionalidad.repaint();
            this.remove(this.pnlSecundario);
            this.btnCerrarFuncionalidad.setVisible(true);
            this.btnCerrarFuncionalidad.setEnabled(true);
            this.mnbMenuPrincipal.setEnabled(false);
        }
        else {
            JOptionPane.showMessageDialog(this, "Debe cerrar la funcionalidad actual para poder abrir otra.", "Información", JOptionPane.INFORMATION_MESSAGE);
        }
    }//GEN-LAST:event_muiMantenimientoUsuariosActionPerformed

    private void muiMantenimientoContrasenhaActionPerformed(java.awt.event.ActionEvent evt) {//GEN-FIRST:event_muiMantenimientoContrasenhaActionPerformed
        // TODO add your handling code here:
        if (this.pnlInicio.isVisible()){
            int width = this.getToolkit().getScreenSize().width;
            int height = this.getToolkit().getScreenSize().height;
            this.pnlFuncionalidad = new pnfMantenimientoContrasenha(this.usuario,"");
            this.add(pnlFuncionalidad,0);
            this.pnlFuncionalidad.setBounds(0,0,width-ESPACIO_BOTON_CERRAR,height);
            this.pnlInicio.setVisible(false);
            this.pnlFuncionalidad.setVisible(true);
            this.remove(this.pnlSecundario);
            this.btnCerrarFuncionalidad.setVisible(true);
            this.btnCerrarFuncionalidad.setEnabled(true);
            this.mnbMenuPrincipal.setEnabled(false);
        }
        else {
            JOptionPane.showMessageDialog(this, "Debe cerrar la funcionalidad actual para poder abrir otra.", "Información", JOptionPane.INFORMATION_MESSAGE);
        }
    }//GEN-LAST:event_muiMantenimientoContrasenhaActionPerformed

    private void mnuCerrarSesionMouseClicked(java.awt.event.MouseEvent evt) {//GEN-FIRST:event_mnuCerrarSesionMouseClicked
        // TODO add your handling code here:
        if (this.pnlInicio.isVisible()){
            this.dispose();
            try{
                blUsuario gestorUsuarios = new blUsuario();
                this.usuario.setIngreso(false);
                gestorUsuarios.modificar(this.usuario);
            }
            catch (Exception e) {
            e.printStackTrace();
            visualHelper.mostrarMensajeError("No se pudo registrar el cliente.");
        }
        }
        else {
            JOptionPane.showMessageDialog(this, "Debe cerrar la funcionalidad actual para poder abrir otra.", "Información", JOptionPane.INFORMATION_MESSAGE);
        }
    }//GEN-LAST:event_mnuCerrarSesionMouseClicked

    private void muiReporteIngresosActionPerformed(java.awt.event.ActionEvent evt) {//GEN-FIRST:event_muiReporteIngresosActionPerformed
        // TODO add your handling code here:
        if (this.pnlInicio.isVisible()){
            int width = this.getToolkit().getScreenSize().width;
            int height = this.getToolkit().getScreenSize().height;
            this.pnlFuncionalidad = new pnfReporteIngresos(this,this.usuario);
            this.add(pnlFuncionalidad,0);
            this.pnlFuncionalidad.setBounds(0,0,width-ESPACIO_BOTON_CERRAR,height);
            this.pnlInicio.setVisible(false);
            this.pnlFuncionalidad.setVisible(true);
            this.remove(this.pnlSecundario);
            this.btnCerrarFuncionalidad.setVisible(true);
            this.btnCerrarFuncionalidad.setEnabled(true);
            this.mnbMenuPrincipal.setEnabled(false);
        }
        else {
            JOptionPane.showMessageDialog(this, "Debe cerrar la funcionalidad actual para poder abrir otra.", "Información", JOptionPane.INFORMATION_MESSAGE);
        }
    }//GEN-LAST:event_muiReporteIngresosActionPerformed

    private void muiReporteKardexActionPerformed(java.awt.event.ActionEvent evt) {//GEN-FIRST:event_muiReporteKardexActionPerformed
        // TODO add your handling code here:
        if (this.pnlInicio.isVisible()){
            int width = this.getToolkit().getScreenSize().width;
            int height = this.getToolkit().getScreenSize().height;
            this.pnlFuncionalidad = new pnfReporteKardex(this,this.usuario);
            this.add(pnlFuncionalidad,0);
            this.pnlFuncionalidad.setBounds(0,0,width-ESPACIO_BOTON_CERRAR,height);
            this.pnlInicio.setVisible(false);
            this.pnlFuncionalidad.setVisible(true);
            this.remove(this.pnlSecundario);
            this.btnCerrarFuncionalidad.setVisible(true);
            this.btnCerrarFuncionalidad.setEnabled(true);
            this.mnbMenuPrincipal.setEnabled(false);
        }
        else {
            JOptionPane.showMessageDialog(this, "Debe cerrar la funcionalidad actual para poder abrir otra.", "Información", JOptionPane.INFORMATION_MESSAGE);
        }
    }//GEN-LAST:event_muiReporteKardexActionPerformed

    private void muiMantenimientoClientesActionPerformed(java.awt.event.ActionEvent evt) {//GEN-FIRST:event_muiMantenimientoClientesActionPerformed
        // TODO add your handling code here:
        if (this.pnlInicio.isVisible()){
            int width = this.getToolkit().getScreenSize().width;
            int height = this.getToolkit().getScreenSize().height;
            this.pnlFuncionalidad = new pnfMantenimientoClientes(this.usuario);
            this.add(pnlFuncionalidad,0);
            this.pnlFuncionalidad.setBounds(0,0,width-ESPACIO_BOTON_CERRAR,height);
            this.pnlInicio.setVisible(false);
            this.pnlFuncionalidad.setVisible(true);
            this.remove(this.pnlSecundario);
            this.btnCerrarFuncionalidad.setVisible(true);
            this.btnCerrarFuncionalidad.setEnabled(true);
            this.mnbMenuPrincipal.setEnabled(false);
        }
        else {
            JOptionPane.showMessageDialog(this, "Debe cerrar la funcionalidad actual para poder abrir otra.", "Información", JOptionPane.INFORMATION_MESSAGE);
        }
    }//GEN-LAST:event_muiMantenimientoClientesActionPerformed

    private void muiReporteEstadoUbicacionesActionPerformed(java.awt.event.ActionEvent evt) {//GEN-FIRST:event_muiReporteEstadoUbicacionesActionPerformed
        // TODO add your handling code here:
        if (this.pnlInicio.isVisible()){
            int width = this.getToolkit().getScreenSize().width;
            int height = this.getToolkit().getScreenSize().height;
            this.pnlFuncionalidad = new pnfReporteEstadoUbicaciones();
            this.add(pnlFuncionalidad,0);
            this.pnlFuncionalidad.setBounds(0,0,width-ESPACIO_BOTON_CERRAR,height);
            this.pnlInicio.setVisible(false);
            this.pnlFuncionalidad.setVisible(true);
            this.remove(this.pnlSecundario);
            this.btnCerrarFuncionalidad.setVisible(true);
            this.btnCerrarFuncionalidad.setEnabled(true);
            this.mnbMenuPrincipal.setEnabled(false);

//            int width = this.getToolkit().getScreenSize().width;
//            int height = this.getToolkit().getScreenSize().height;
//            this.pnlFuncionalidad = new pnfEstadoActualAlmacen();
//            this.add(pnlFuncionalidad,0);
//            this.pnlFuncionalidad.setBounds(0,0,width-ESPACIO_BOTON_CERRAR,height);
//            this.pnlInicio.setVisible(false);
//            this.pnlFuncionalidad.setVisible(true);
//            this.remove(this.pnlSecundario);
//            this.btnCerrarFuncionalidad.setVisible(true);
//            this.btnCerrarFuncionalidad.setEnabled(true);
//            this.mnbMenuPrincipal.setEnabled(false);
        }
        else {
            JOptionPane.showMessageDialog(this, "Debe cerrar la funcionalidad actual para poder abrir otra.", "Información", JOptionPane.INFORMATION_MESSAGE);
        }
    }//GEN-LAST:event_muiReporteEstadoUbicacionesActionPerformed

    private void muiReporteTrazabilidadActionPerformed(java.awt.event.ActionEvent evt) {//GEN-FIRST:event_muiReporteTrazabilidadActionPerformed
        // TODO add your handling code here:
        if (this.pnlInicio.isVisible()){
            int width = this.getToolkit().getScreenSize().width;
            int height = this.getToolkit().getScreenSize().height;
            this.pnlFuncionalidad = new pnfReporteTrazabilidad(this,this.usuario);
            this.add(pnlFuncionalidad,0);
            this.pnlFuncionalidad.setBounds(0,0,width-ESPACIO_BOTON_CERRAR,height);
            this.pnlInicio.setVisible(false);
            this.pnlFuncionalidad.setVisible(true);
            this.remove(this.pnlSecundario);
            this.btnCerrarFuncionalidad.setVisible(true);
            this.btnCerrarFuncionalidad.setEnabled(true);
            this.mnbMenuPrincipal.setEnabled(false);
        }
        else {
            JOptionPane.showMessageDialog(this, "Debe cerrar la funcionalidad actual para poder abrir otra.", "Información", JOptionPane.INFORMATION_MESSAGE);
        }
    }//GEN-LAST:event_muiReporteTrazabilidadActionPerformed

    private void muiMantenimientoProductoActionPerformed(java.awt.event.ActionEvent evt) {//GEN-FIRST:event_muiMantenimientoProductoActionPerformed
        // TODO add your handling code here:
        if (this.pnlInicio.isVisible()){
            int width = this.getToolkit().getScreenSize().width;
            int height = this.getToolkit().getScreenSize().height;
            try {
                this.pnlFuncionalidad = new pnfMantenimientoProductos(this.usuario);
            } catch (SQLException ex) {
                Logger.getLogger(frmMenu.class.getName()).log(Level.SEVERE, null, ex);
            }
            this.add(pnlFuncionalidad,0);
            this.pnlFuncionalidad.setBounds(0,0,width-ESPACIO_BOTON_CERRAR,height);
            this.pnlInicio.setVisible(false);
            this.pnlFuncionalidad.setVisible(true);
            this.remove(this.pnlSecundario);
            this.btnCerrarFuncionalidad.setVisible(true);
            this.btnCerrarFuncionalidad.setEnabled(true);
            this.mnbMenuPrincipal.setEnabled(false);
        }
        else {
            JOptionPane.showMessageDialog(this, "Debe cerrar la funcionalidad actual para poder abrir otra.", "Información", JOptionPane.INFORMATION_MESSAGE);
        }
    }//GEN-LAST:event_muiMantenimientoProductoActionPerformed

    private void muiDistribucionAlmacenActionPerformed(java.awt.event.ActionEvent evt) {//GEN-FIRST:event_muiDistribucionAlmacenActionPerformed
        // TODO add your handling code here:

        if (this.pnlInicio.isVisible()){
            
                int width = this.getToolkit().getScreenSize().width;
                int height = this.getToolkit().getScreenSize().height;
                this.pnlFuncionalidad = new pnfDistribucionAlmacen(this.usuario);
                this.add(pnlFuncionalidad, 0);
                this.pnlFuncionalidad.setBounds(0, 0, width - ESPACIO_BOTON_CERRAR, height);
                this.pnlInicio.setVisible(false);
                this.pnlFuncionalidad.setVisible(true);
                this.remove(this.pnlSecundario);
                this.btnCerrarFuncionalidad.setVisible(true);
                this.btnCerrarFuncionalidad.setEnabled(true);
                this.mnbMenuPrincipal.setEnabled(false);
            
        }
        else {
            JOptionPane.showMessageDialog(this, "Debe cerrar la funcionalidad actual para poder abrir otra.", "Información", JOptionPane.INFORMATION_MESSAGE);
        }
    }//GEN-LAST:event_muiDistribucionAlmacenActionPerformed

    private void muiSalidaPorVencimientoActionPerformed(java.awt.event.ActionEvent evt) {//GEN-FIRST:event_muiSalidaPorVencimientoActionPerformed
        // TODO add your handling code here:
        if (this.pnlInicio.isVisible()){
            int width = this.getToolkit().getScreenSize().width;
            int height = this.getToolkit().getScreenSize().height;
            this.pnlFuncionalidad = new pnfSalidaPorVencimiento(this.usuario);
            this.add(pnlFuncionalidad,0);
            this.pnlFuncionalidad.setBounds(0,0,width-ESPACIO_BOTON_CERRAR,height);
            this.pnlInicio.setVisible(false);
            this.pnlFuncionalidad.setVisible(true);
            this.remove(this.pnlSecundario);
            this.btnCerrarFuncionalidad.setVisible(true);
            this.btnCerrarFuncionalidad.setEnabled(true);
            this.mnbMenuPrincipal.setEnabled(false);
        }
        else {
            JOptionPane.showMessageDialog(this, "Debe cerrar la funcionalidad actual para poder abrir otra.", "Información", JOptionPane.INFORMATION_MESSAGE);
        }
    }//GEN-LAST:event_muiSalidaPorVencimientoActionPerformed

    private void muiDespachoActionPerformed(java.awt.event.ActionEvent evt) {//GEN-FIRST:event_muiDespachoActionPerformed
        // TODO add your handling code here:
        if (this.pnlInicio.isVisible()){
            int width = this.getToolkit().getScreenSize().width;
            int height = this.getToolkit().getScreenSize().height;
            this.pnlFuncionalidad = new pnfSacarXDespacho(this.usuario);
            this.add(pnlFuncionalidad,0);
            this.pnlFuncionalidad.setBounds(0,0,width-ESPACIO_BOTON_CERRAR,height);
            this.pnlInicio.setVisible(false);
            this.pnlFuncionalidad.setVisible(true);
            this.remove(this.pnlSecundario);
            this.btnCerrarFuncionalidad.setVisible(true);
            this.btnCerrarFuncionalidad.setEnabled(true);
            this.mnbMenuPrincipal.setEnabled(false);
        }
        else {
            JOptionPane.showMessageDialog(this, "Debe cerrar la funcionalidad actual para poder abrir otra.", "Información", JOptionPane.INFORMATION_MESSAGE);
        }
    }//GEN-LAST:event_muiDespachoActionPerformed

    private void muiSalidaPorIncidenteActionPerformed(java.awt.event.ActionEvent evt) {//GEN-FIRST:event_muiSalidaPorIncidenteActionPerformed
        // TODO add your handling code here:
        if (this.pnlInicio.isVisible()){
            int width = this.getToolkit().getScreenSize().width;
            int height = this.getToolkit().getScreenSize().height;
            this.pnlFuncionalidad = new pnfSacarXIncidente(this.usuario);
            this.add(pnlFuncionalidad,0);
            this.pnlFuncionalidad.setBounds(0,0,width-ESPACIO_BOTON_CERRAR,height);
            this.pnlInicio.setVisible(false);
            this.pnlFuncionalidad.setVisible(true);
            this.remove(this.pnlSecundario);
            this.btnCerrarFuncionalidad.setVisible(true);
            this.btnCerrarFuncionalidad.setEnabled(true);
            this.mnbMenuPrincipal.setEnabled(false);
        }
        else {
            JOptionPane.showMessageDialog(this, "Debe cerrar la funcionalidad actual para poder abrir otra.", "Información", JOptionPane.INFORMATION_MESSAGE);
        }
    }//GEN-LAST:event_muiSalidaPorIncidenteActionPerformed

    private void muiEstadoActualAlmacenActionPerformed(java.awt.event.ActionEvent evt) {//GEN-FIRST:event_muiEstadoActualAlmacenActionPerformed
        // TODO add your handling code here:
        if (this.pnlInicio.isVisible()){
            int width = this.getToolkit().getScreenSize().width;
            int height = this.getToolkit().getScreenSize().height;
            this.pnlFuncionalidad = new pnfEstadoActualAlmacen();
            this.add(pnlFuncionalidad,0);
            this.pnlFuncionalidad.setBounds(0,0,width-ESPACIO_BOTON_CERRAR,height);
            this.pnlInicio.setVisible(false);
            this.pnlFuncionalidad.setVisible(true);
            this.remove(this.pnlSecundario);
            this.btnCerrarFuncionalidad.setVisible(true);
            this.btnCerrarFuncionalidad.setEnabled(true);
            this.mnbMenuPrincipal.setEnabled(false);
        }
        else {
            JOptionPane.showMessageDialog(this, "Debe cerrar la funcionalidad actual para poder abrir otra.", "Información", JOptionPane.INFORMATION_MESSAGE);
        }

    }//GEN-LAST:event_muiEstadoActualAlmacenActionPerformed

    private void muiConsultarLogAuditoriaActionPerformed(java.awt.event.ActionEvent evt) {//GEN-FIRST:event_muiConsultarLogAuditoriaActionPerformed
        // TODO add your handling code here:
        if (this.pnlInicio.isVisible()){
            int width = this.getToolkit().getScreenSize().width;
            int height = this.getToolkit().getScreenSize().height;
            this.pnlFuncionalidad = new pnfConsultarLog(this.usuario);
            this.add(pnlFuncionalidad,0);
            this.pnlFuncionalidad.setBounds(0,0,width-ESPACIO_BOTON_CERRAR,height);
            this.pnlInicio.setVisible(false);
            this.pnlFuncionalidad.setVisible(true);
            this.remove(this.pnlSecundario);
            this.btnCerrarFuncionalidad.setVisible(true);
            this.btnCerrarFuncionalidad.setEnabled(true);
            this.mnbMenuPrincipal.setEnabled(false);
        }
        else {
            JOptionPane.showMessageDialog(this, "Debe cerrar la funcionalidad actual para poder abrir otra.", "Información", JOptionPane.INFORMATION_MESSAGE);
        }
    }//GEN-LAST:event_muiConsultarLogAuditoriaActionPerformed

    private void muiUbicacionProductosActionPerformed(java.awt.event.ActionEvent evt) {//GEN-FIRST:event_muiUbicacionProductosActionPerformed
        // TODO add your handling code here:
            if (this.pnlInicio.isVisible()){
            int width = this.getToolkit().getScreenSize().width;
            int height = this.getToolkit().getScreenSize().height;
            this.pnlFuncionalidad = new pnfUbicacionPallet(this.usuario);
            this.add(pnlFuncionalidad,0);
            this.pnlFuncionalidad.setBounds(0,0,width-ESPACIO_BOTON_CERRAR,height);
            this.pnlInicio.setVisible(false);
            this.pnlFuncionalidad.setVisible(true);
            this.remove(this.pnlSecundario);
            this.btnCerrarFuncionalidad.setVisible(true);
            this.btnCerrarFuncionalidad.setEnabled(true);
            this.mnbMenuPrincipal.setEnabled(false);
        }
        else {
            JOptionPane.showMessageDialog(this, "Debe cerrar la funcionalidad actual para poder abrir otra.", "Información", JOptionPane.INFORMATION_MESSAGE);
        }
    }//GEN-LAST:event_muiUbicacionProductosActionPerformed

    private void muiReporteInventarioActionPerformed(java.awt.event.ActionEvent evt) {//GEN-FIRST:event_muiReporteInventarioActionPerformed
        // TODO add your handling code here:
        if (this.pnlInicio.isVisible()){
            int width = this.getToolkit().getScreenSize().width;
            int height = this.getToolkit().getScreenSize().height;
            this.pnlFuncionalidad = new pnfReporteInventario(this,this.usuario);
            this.add(pnlFuncionalidad,0);
            this.pnlFuncionalidad.setBounds(0,0,width-ESPACIO_BOTON_CERRAR,height);
            this.pnlInicio.setVisible(false);
            this.pnlFuncionalidad.setVisible(true);
            this.pnlSecundario.setVisible(false);
            this.remove(this.pnlSecundario);
            this.btnCerrarFuncionalidad.setVisible(true);
            this.btnCerrarFuncionalidad.setEnabled(true);
            this.mnbMenuPrincipal.setEnabled(false);
        }
        else {
            JOptionPane.showMessageDialog(this, "Debe cerrar la funcionalidad actual para poder abrir otra.", "Información", JOptionPane.INFORMATION_MESSAGE);
        }
    }//GEN-LAST:event_muiReporteInventarioActionPerformed

    private void muiSalidaPorIncidenteMouseClicked(java.awt.event.MouseEvent evt) {//GEN-FIRST:event_muiSalidaPorIncidenteMouseClicked
        // TODO add your handling code here:
    }//GEN-LAST:event_muiSalidaPorIncidenteMouseClicked

    public static void main(String args[]) {
        java.awt.EventQueue.invokeLater(new Runnable() {
            public void run() {
                new frmMenu(null).setVisible(true);
            }
        });
    }


    // Variables declaration - do not modify//GEN-BEGIN:variables
    private javax.swing.JButton btnCerrarFuncionalidad;
    private javax.swing.JLabel imgInicio;
    private javax.swing.JLabel lblDatosUsuario;
    private javax.swing.JLabel lblInfoPerfil;
    private javax.swing.JLabel lblInfoUsuario;
    private javax.swing.JLabel lblTitulo1;
    private javax.swing.JLabel lblTitulo2;
    private javax.swing.JMenu menuSeguridad;
    private javax.swing.JMenuBar mnbMenuPrincipal;
    private javax.swing.JMenu mnuAlmacenamiento;
    private javax.swing.JMenu mnuCerrarSesion;
    private javax.swing.JMenu mnuConfiguracion;
    private javax.swing.JMenu mnuDespacho;
    private javax.swing.JMenu mnuIngreso;
    private javax.swing.JMenu mnuMovimientos;
    private javax.swing.JMenu mnuReportes;
    private javax.swing.JMenuItem muiBloqueoRacks;
    private javax.swing.JMenuItem muiConsultarLogAuditoria;
    private javax.swing.JMenuItem muiDespacho;
    private javax.swing.JMenuItem muiDistribucionAlmacen;
    private javax.swing.JMenuItem muiEstadoActualAlmacen;
    private javax.swing.JMenuItem muiMantenimientoClientes;
    private javax.swing.JMenuItem muiMantenimientoContrasenha;
    private javax.swing.JMenuItem muiMantenimientoIncidencias;
    private javax.swing.JMenuItem muiMantenimientoOrdenDespacho;
    private javax.swing.JMenuItem muiMantenimientoPedidos;
    private javax.swing.JMenuItem muiMantenimientoPerfil;
    private javax.swing.JMenuItem muiMantenimientoProducto;
    private javax.swing.JMenuItem muiMantenimientoProveedores;
    private javax.swing.JMenuItem muiMantenimientoUsuarios;
    private javax.swing.JMenuItem muiReporteDanhos;
    private javax.swing.JMenuItem muiReporteEstadoUbicaciones;
    private javax.swing.JMenuItem muiReporteIngresos;
    private javax.swing.JMenuItem muiReporteInventario;
    private javax.swing.JMenuItem muiReporteKardex;
    private javax.swing.JMenuItem muiReporteTrazabilidad;
    private javax.swing.JMenuItem muiReubicacionProductos;
    private javax.swing.JMenuItem muiSalidaPorIncidente;
    private javax.swing.JMenuItem muiSalidaPorVencimiento;
    private javax.swing.JMenuItem muiUbicacionProductos;
    private javax.swing.JPanel pnlInicio;
    private javax.swing.JPanel pnlSecundario;
    // End of variables declaration//GEN-END:variables

}





//if (this.pnlInicio.isVisible()){
//            int width = this.getToolkit().getScreenSize().width;
//            int height = this.getToolkit().getScreenSize().height;
//            this.pnlFuncionalidad = new pnfAsignarPalletAUbicacion();
//            this.add(pnlFuncionalidad,0);
//            this.pnlFuncionalidad.setBounds(0,0,width-ESPACIO_BOTON_CERRAR,height);
//            this.pnlInicio.setVisible(false);
//            this.pnlFuncionalidad.setVisible(true);
//            this.btnCerrarFuncionalidad.setEnabled(true);
//            this.mnbMenuPrincipal.setEnabled(false);
//        }
//        else {
//            JOptionPane.showMessageDialog(this, "Debe cerrar la funcionalidad actual para poder abrir otra.", "Información", JOptionPane.INFORMATION_MESSAGE);
//        }